home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / comm1 / qwesorcs.lha / qwe_sources / Wall / Wall.c
C/C++ Source or Header  |  1995-10-03  |  5KB  |  276 lines

  1. const char *_VERSION="\0$VER: Wall 1.01 (18.03.95)";
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <exec/ports.h>
  7. #include <graphics/gfx.h>
  8. #include <exec/semaphores.h>
  9. #include <graphics/rastport.h>
  10. #include <cnet/empty.h>
  11. #include <cnet/cnet.h>
  12.  
  13. FILE    *fp;
  14.  
  15. char    line[108][83],
  16.         key[3],
  17.         linebuffer[83],
  18.         date[30];
  19. short    i,
  20.         j,
  21.         k,
  22.         l,
  23.         m,
  24.         n,
  25.         written=0,
  26.         hour=0,
  27.         min=0;
  28.  
  29. void balkenwech(void)
  30. {
  31.     switch (j)
  32.     {
  33.         case 90:
  34.         {
  35.             PutText("76HÝÞ76HÝÞ");
  36.             break;
  37.         }
  38.         case 72:
  39.         {
  40.             PutText("76HÝÞ76HÝÞ");
  41.             break;
  42.         }
  43.         case 54:
  44.         {
  45.             PutText("76HÝÞ76HÝÞ");
  46.             break;
  47.         }
  48.         case 36:
  49.         {
  50.             PutText("6HÝÞ76HÝÞ");
  51.             break;
  52.         }
  53.         case 18:
  54.         {
  55.             PutText("6HÝÞ6HÝÞ");
  56.             break;
  57.         }
  58.         case 0:
  59.         {
  60.             PutText("6HÝÞ6HÝÞ");
  61.             break;
  62.         }
  63.     }
  64. }
  65.  
  66. void balkenhin(void)
  67. {
  68.     switch (j)
  69.     {
  70.         case 90:
  71.         {
  72.             PutText("76HÝÞ76HÝÞ");
  73.             break;
  74.         }
  75.         case 72:
  76.         {
  77.             PutText("76HÝÞ76HÝÞ");
  78.             break;
  79.         }
  80.         case 54:
  81.         {
  82.             PutText("76HÝÞ76HÝÞ");
  83.             break;
  84.         }
  85.         case 36:
  86.         {
  87.             PutText("6HÝÞ76HÝÞ");
  88.             break;
  89.         }
  90.         case 18:
  91.         {
  92.             PutText("6HÝÞ6HÝÞ");
  93.             break;
  94.         }
  95.         case 0:
  96.         {
  97.             PutText("6HÝÞ6HÝÞ");
  98.             break;
  99.         }
  100.     }
  101. }
  102.  
  103. void lineprint(void)
  104. {
  105.     k=j+18;
  106.  
  107.     /* AUSGABE DES WALLTEXTES */
  108.  
  109.     PutText("H");
  110.  
  111.     for (i=j;i<k;i++)
  112.     {
  113.         PutText(line[i]);
  114.     }
  115.  
  116.     PutText("H");
  117. }
  118.  
  119. main(int argc,char **argv)
  120. {
  121.     PreMain(argc,argv);        /*** Let it here, dute! ***/
  122.  
  123.     /* EINLESEN DER WALL.MESS */
  124.  
  125.     SetDoing("Wall");
  126.     i=0;
  127.     if (fp=fopen("pfiles:wall/wall.mess","r"))
  128.     {
  129.         while (fgets(line[i],sizeof(line[0]),fp)) i++;
  130.         fclose(fp);
  131.     }
  132.     else
  133.         goto hell;
  134.  
  135.  
  136.     /* AUSGABE DER WALL */
  137.  
  138.     ReadFile("pfiles:wall/wall.ansi",0);
  139.     MakeDate(&z->Today,date);
  140.  
  141.     date[18]=0;
  142.     hour=atoi(&date[16]);min=atoi(&date[19]);
  143.     if (date[21]=='p' && hour<12) hour+=12;
  144.     if (date[21]=='a' && hour==12) hour=0;
  145.  
  146.     j=90;
  147.     lineprint();
  148.  
  149.     key[0]=0;
  150.     while (key[0]!=13 && key[0]!=89 && z->TimeLeft != 0)
  151.     {
  152.         k=j+18;
  153.  
  154.         key[0]=CNetGetKey();
  155. key0:
  156.         /* RAUF UND RUNTER */
  157.  
  158.         if (key[0]==27 && z->TimeLeft != 0)
  159.         {
  160.             key[0]=CNetGetKey();
  161.             if (key[0]==91)
  162.             {
  163.                 key[0]=CNetGetKey();
  164.                 if (key[0]==65 && j>0)
  165.                 {
  166.                     balkenwech();
  167.                     j=j-18;
  168.                     balkenhin();
  169.                     lineprint();
  170.                 }
  171.                 if (key[0]==66 && j<90)
  172.                 {
  173.                     balkenwech();
  174.                     j=j+18;
  175.                     balkenhin();
  176.                     lineprint();
  177.                 }
  178.             }
  179.             else goto key0;
  180.         }
  181.         if ((z->user1.IDNumber==1) && key[0]==75)
  182.         {
  183.             key[0]=CNetGetKey();
  184.             if (key[0]>48 && key[0]<55)
  185.             {
  186.                 m=(j%18+key[0]+key[0]+key[0]-49*3);
  187.                 n=(j+key[0]+key[0]+key[0]-49*3);
  188.                 strcpy(&line[n][17],">--------------------- ZENSIERT VOM SYSOP ----------------------\n");
  189.                 strcpy(&line[n+1][12],">Grund:                                                         \n");
  190.                 strcpy(&line[n+2][12],">---------------------------------------------------------------\n");
  191.                 sprintf(linebuffer,"%d;1H",m+4);
  192.                 PutText(linebuffer);
  193.                 for(i=n;i<n+3;i++)
  194.                 {
  195.                     PutText(line[i]);
  196.                 }
  197.                 sprintf(linebuffer,"%d;18H",m+5);
  198.                 PutText(linebuffer);
  199.                 if (EnterLine(56,4096,""))
  200.                 {
  201.                     m=0;
  202.                     do
  203.                     {
  204.                         line[n+1][m+20]=z->InBuffer[m];
  205.                         m++;
  206.                     }
  207.                     while (z->InBuffer[m]!=0);
  208.                     written=1;
  209.                 }
  210.             }
  211.         }
  212.     }
  213.  
  214.  
  215.     if (key[0]==89)
  216.     {
  217.         balkenwech();
  218.         j=90;
  219.         balkenhin();
  220.         sprintf(line[0],"%.9s%-9.8s                                                               \n",line[87],z->user1.Handle);
  221.         sprintf(line[1],"C%2d:%02d                                                                   \n",hour,min);
  222.         sprintf(line[2],"C%.6s                                                                  \n",date+4);
  223.  
  224.         PutText("H");
  225.  
  226.         for(i=93;i<108;i++)
  227.         {
  228.             PutText(line[i]);
  229.         }
  230.         PutText(line[0]);
  231.         PutText(line[1]);
  232.         PutText(line[2]);
  233.  
  234.         /* EINGABE DES WALLTEXTES */
  235.  
  236.         PutText("11H");
  237.         if (EnterLine(63,4096,""))
  238.         {
  239.             sprintf(line[0],"%.9s%-9.8s%-63s\n",line[87],z->user1.Handle,z->InBuffer);
  240.             PutText("11H");
  241.             if (EnterLine(63,4096,""))
  242.             {
  243.                 sprintf(line[1],"C%2d:%02d    %-63s\n",hour,min,z->InBuffer);
  244.                 PutText("11H");
  245.                 if (EnterLine(63,4096,""))
  246.                     sprintf(line[2],"C%-9.6s%-63s\n",date+4,z->InBuffer);
  247.             }
  248.  
  249.             /* SCHREIBEN DER WALL.MESS */
  250.  
  251.             if (fp=fopen("pfiles:wall/wall.mess","w"))
  252.             {
  253.                 for(i=3;i<108;i++)
  254.                     fputs(line[i],fp);
  255.                 fputs(line[0],fp);
  256.                 fputs(line[1],fp);
  257.                 fputs(line[2],fp);
  258.                 fclose(fp);
  259.                 written=0;
  260.             }
  261.         }
  262.     }
  263.     if (written==1)
  264.     {
  265.         if (fp=fopen("pfiles:wall/wall.mess","w"))
  266.         {
  267.             for(i=0;i<108;i++)
  268.                 fputs(line[i],fp);
  269.             fclose(fp);
  270.         }
  271.     }
  272. hell:
  273.     PutText("1H p");
  274.     PostMain();          /*** Must be here ***/
  275. }
  276.